home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 016 / doscol.arc / DOSCOL.BAS next >
Encoding:
BASIC Source File  |  1986-10-21  |  3.6 KB  |  109 lines

  1. 10 '****************************************************************
  2. 20 '* Program name: DOSCOL               Author: Kyle Cummings     *
  3. 30 '* Date written: 07-28-86             Installation: Joppa MD.   *
  4. 40 '* Version: KC861021                                            *
  5. 50 '*                                                              *
  6. 60 '* Program purpose: To set the color of DOS from a BASIC        *
  7. 70 '* program using ANSI codes.                                    *
  8. 80 '****************************************************************
  9. 90 CLS
  10. 100 KEY OFF
  11. 110 FORG=7
  12. 120 BACG=0
  13. 130 ' -- Ask some good questions.
  14. 140 CLS
  15. 150 ' -- Get the colors for Background and Foreground.
  16. 160 GOSUB 360
  17. 170 GOSUB 820
  18. 180 BACG$=MID$(STR$(BACG),2,LEN(STR$(BACG)))
  19. 190 IF BACG<10 THEN BACG$="0"+BACG$
  20. 200 ANCODE$=CHR$(27)+"[00;"+FORG$+";"+BACG$+"m"
  21. 210 CLS
  22. 220 LOCATE 12,17:PRINT "Setting DOS color with the following ANSI code:";
  23. 230 LOCATE 14,40-CINT(LEN(ANCODE$)/2):PRINT ANCODE$;
  24. 240 ' -- Open the output file.
  25. 250 CLOSE #1:OPEN "SETCOLOR.ASI" FOR OUTPUT AS #1
  26. 260 ' -- Write the ANSI code.
  27. 270 PRINT #1,ANCODE$
  28. 280 CLOSE #1
  29. 290 ' -- Make DOS set itself.
  30. 300 SHELL "Type SETCOLOR.ASI"
  31. 310 ' -- Kill the file.
  32. 320 KILL "SETCOLOR.ASI"
  33. 330 ' -- Get out.
  34. 340 SYSTEM
  35. 350 ' -- Get the color for Foreground.
  36. 360 PRINT "Possible FOREGROUND colors are:"
  37. 370 PRINT
  38. 380 PRINT "0 = Black    8 = Gray"
  39. 390 PRINT "1 = Blue     9 = Light Blue"
  40. 400 PRINT "2 = Green   10 = Light Green"
  41. 410 PRINT "3 = Cyan    11 = Light Cyan"
  42. 420 PRINT "4 = Red     12 = Light Red"
  43. 430 PRINT "5 = Magenta 13 = Light Magenta"
  44. 440 PRINT "6 = Brown   14 = Yellow"
  45. 450 PRINT "7 = White   15 = High-intensity White"
  46. 460 PRINT
  47. 470 PRINT "*** NOTE: To make BLINKING colors, add 16 to the above numbers."
  48. 480 PRINT
  49. 490 PRINT "What do you want the FOREGROUND color to be? (-";FORG;"-)";
  50. 500 INPUT " ",ANS$
  51. 510 IF ANS$="" THEN GOTO 550
  52. 520 ANS=VAL(ANS$)
  53. 530 IF ANS<0 OR ANS>31 THEN GOTO 490
  54. 540 FORG=ANS
  55. 550 IFLAG=0:BFLAG=0
  56. 560 ' -- Set BLINK ON
  57. 570 IF FORG>15 AND FORG<32 THEN BFLAG=5
  58. 580 ' -- Bring the color down.
  59. 590 IF FORG>15 THEN FORG=FORG-16
  60. 600 ' -- Set High Intensity ON
  61. 610 IF FORG>7 AND FORG<16 THEN IFLAG=1
  62. 620 ' -- Bring the color down.
  63. 630 IF FORG>7 THEN FORG=FORG-8
  64. 640 ' -- Figure out the ANSI color.
  65. 650 IF FORG=0 THEN FG=30
  66. 660 IF FORG=1 THEN FG=34
  67. 670 IF FORG=2 THEN FG=32
  68. 680 IF FORG=3 THEN FG=36
  69. 690 IF FORG=4 THEN FG=31
  70. 700 IF FORG=5 THEN FG=35
  71. 710 IF FORG=6 THEN FG=33
  72. 720 IF FORG=7 THEN FG=37
  73. 730 ' -- Add it all together.
  74. 740 FORG$=MID$(STR$(FG),2,LEN(STR$(FG)))
  75. 750 IF FG<10 THEN FORG$="0"+FORG$
  76. 760 IF BFLAG<>0 THEN FORG$=MID$(STR$(BFLAG),2,LEN(STR$(BFLAG)))+";"+FORG$
  77. 770 IF BFLAG<10 AND BFLAG<>0 THEN FORG$="0"+FORG$
  78. 780 IF IFLAG<>0 THEN FORG$=MID$(STR$(IFLAG),2,LEN(STR$(IFLAG)))+";"+FORG$
  79. 790 IF IFLAG<10 AND IFLAG<>0 THEN FORG$="0"+FORG$
  80. 800 RETURN
  81. 810 ' -- Get the color for Background.
  82. 820 CLS
  83. 830 PRINT "Possible BACKGROUND colors are:"
  84. 840 PRINT
  85. 850 PRINT "0 = Black"
  86. 860 PRINT "1 = Blue"
  87. 870 PRINT "2 = Green"
  88. 880 PRINT "3 = Cyan"
  89. 890 PRINT "4 = Red"
  90. 900 PRINT "5 = Magenta"
  91. 910 PRINT "6 = Brown"
  92. 920 PRINT "7 = White"
  93. 930 PRINT
  94. 940 PRINT "What do you want the BACKGROUND color to be? (-";BACG;"-)";
  95. 950 INPUT " ",ANS$
  96. 960 IF ANS$="" THEN GOTO 1000
  97. 970 ANS=VAL(ANS$)
  98. 980 IF ANS<0 OR ANS>7 THEN GOTO 940
  99. 990 BACG=ANS
  100. 1000 IF BACG=0 THEN BACG=40
  101. 1010 IF BACG=1 THEN BACG=44
  102. 1020 IF BACG=2 THEN BACG=42
  103. 1030 IF BACG=3 THEN BACG=46
  104. 1040 IF BACG=4 THEN BACG=41
  105. 1050 IF BACG=5 THEN BACG=45
  106. 1060 IF BACG=6 THEN BACG=43
  107. 1070 IF BACG=7 THEN BACG=47
  108. 1080 RETURN
  109.